﻿using System;
using System.Collections.Generic;
using CodeFirstMVC3.Core;
using CodeFirstMVC3.Domain.Model;

namespace CodeFirstMVC3.Domain.Service
{
    public interface IMemberService
    {
        IMember New();

        bool Contain(string username);

        void Add(IMember entity);

        void Edit(IMember entity);

        void Remove(IMember entity);

        IMember Get(int id);

        IMember Get(Func<IMember, bool> predicate);

        int GetCount(Func<IMember, bool> perdicate=null);

        IEnumerable<IMember> GetAll(Func<IMember, bool> predicate=null, int start = 0, int count = ApplicationSettings.PageSize);

        IMember Authenticate(string username, string password);

    }
}
